{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from fit.datamodules.super_res import CelebA_SResFITDM\n",
    "from fit.utils.tomo_utils import get_polar_rfft_coords_2D\n",
    "\n",
    "from fit.modules.SResTransformerModule import SResTransformerModule\n",
    "\n",
    "from matplotlib import pyplot as plt\n",
    "from matplotlib import gridspec\n",
    "\n",
    "import torch\n",
    "\n",
    "import numpy as np\n",
    "\n",
    "from pytorch_lightning import Trainer, seed_everything\n",
    "from pytorch_lightning.callbacks import ModelCheckpoint\n",
    "\n",
    "from os.path import exists\n",
    "import wget"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Global seed set to 22122020\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "22122020"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "seed_everything(22122020)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "dm = CelebA_SResFITDM(root_dir='./datamodules/data/CelebA/', batch_size=32)\n",
    "dm.prepare_data()\n",
    "dm.setup()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "r, phi, flatten_order, order = get_polar_rfft_coords_2D(img_shape=dm.gt_shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "n_heads = 8\n",
    "d_query = 32"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = SResTransformerModule(d_model=n_heads*d_query, \n",
    "                              img_shape=dm.gt_shape,\n",
    "                              coords=(r, phi),\n",
    "                              dst_flatten_order=flatten_order,\n",
    "                              dst_order=order,\n",
    "                              loss='prod',\n",
    "                              lr=0.0001, weight_decay=0.01, n_layers=8,\n",
    "                              n_heads=n_heads, d_query=d_query, dropout=0.1, attention_dropout=0.1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "GPU available: True, used: True\n",
      "TPU available: False, using: 0 TPU cores\n"
     ]
    }
   ],
   "source": [
    "trainer = Trainer(max_epochs=100, \n",
    "                  gpus=1,\n",
    "                  checkpoint_callback=ModelCheckpoint(\n",
    "                                            dirpath=None,\n",
    "                                            save_top_k=1,\n",
    "                                            verbose=False,\n",
    "                                            save_last=True,\n",
    "                                            monitor='Train/avg_val_loss',\n",
    "                                            mode='min',\n",
    "                                            prefix='best_val_loss_'\n",
    "                                        ), \n",
    "                  deterministic=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Train your own model.\n",
    "# trainer.fit(model, datamodule=dm);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "if not exists('./models/sres/celeb_sres.ckpt'):\n",
    "    wget.download('https://cloud.mpi-cbg.de/index.php/s/ya04ArMUupkvepS/download',\n",
    "                  out='./models/sres/celeb_sres.ckpt')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.load_test_model('./models/sres/celeb_sres.ckpt')\n",
    "model.cpu();"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "num_rings = 6\n",
    "\n",
    "x, y = np.meshgrid(range(model.dft_shape[1]), range(-model.dft_shape[0] // 2 + 1, model.dft_shape[0] // 2 + 1))\n",
    "radii = np.sqrt(x ** 2 + y ** 2, dtype=np.float32)\n",
    "selected_rings = np.round(radii) < num_rings\n",
    "\n",
    "model.input_seq_length = np.sum(selected_rings)\n",
    "plt.imshow(selected_rings)\n",
    "plt.title('Prefix');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "for fc, (mag_min, mag_max) in dm.test_dataloader():\n",
    "    break"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "lowres, pred_img, gt = model.get_lowres_pred_gt(fc, mag_min, mag_max)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1116x360 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sample = 30\n",
    "fig = plt.figure(figsize=(31/2., 10/2.)) \n",
    "gs = gridspec.GridSpec(1, 5, width_ratios=[10,0.5, 10, 0.5, 10]) \n",
    "ax0 = plt.subplot(gs[0])\n",
    "ax1 = plt.subplot(gs[2])\n",
    "ax2 = plt.subplot(gs[4])\n",
    "plt.subplots_adjust(top = 1, bottom = 0, right = 1, left = 0, \n",
    "                    hspace = 0, wspace = 0)\n",
    "\n",
    "ax0.xaxis.set_major_locator(plt.NullLocator())\n",
    "ax0.yaxis.set_major_locator(plt.NullLocator())\n",
    "ax0.imshow(lowres[sample], cmap='gray', vmin=gt[sample].min(), vmax=gt[sample].max())\n",
    "ax0.set_title('Low-Resolution Input');\n",
    "ax0.axis('equal');\n",
    "\n",
    "ax1.xaxis.set_major_locator(plt.NullLocator())\n",
    "ax1.yaxis.set_major_locator(plt.NullLocator())\n",
    "ax1.imshow(pred_img[sample], cmap='gray')#, vmin=gt[sample].min(), vmax=gt[sample].max())\n",
    "ax1.set_title('Prediction');\n",
    "ax1.axis('equal');\n",
    "\n",
    "\n",
    "ax2.xaxis.set_major_locator(plt.NullLocator())\n",
    "ax2.yaxis.set_major_locator(plt.NullLocator())\n",
    "ax2.imshow(gt[sample], cmap='gray')\n",
    "ax2.set_title('Ground Truth');\n",
    "ax2.axis('equal');"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
